/**
 * 数字枚举 - 有反向映射
 * Up使用初始化为 1。 其余的成员会从 1开始自动增长
 * Up没有初始值时，默认为 0 
 */
// 全部都会转换
enum Direction {
  Up = 1,
  Down,
  Left,
  Right
}
console.log(Direction.Up)
/**
 * 字符串枚举
 */
enum Direction2 {
  Up = "up",
  Down = "down",
  Left = "left",
  Right = "right"
}
console.log(Direction2.Up)

// /**
//  * 常量枚举 - 用到哪个常量转换js时只转哪个
//  */
const enum Direction3 {
  Up = 1,
  Down,
  Left,
  Right
}

console.log(Direction3.Up)


// function walk(str: Direction) {
//   if (str === Direction.Up) {
//     console.log("往【上】走")
//   } else if (str === Direction.Down) {
//     console.log("往【下】走")
//   } else if (str === Direction.Left) {
//     console.log("往【左】走")
//   } else if (str === Direction.Right) {
//     console.log("往【右】走")
//   }
// }

// walk(Direction.Up)
